package service.Azubi;

import java.util.List;

import Fiad.FIAD;
import Fiad.FIADImpl;

import valueobjects.Ausbilder.Ausbilder;
import valueobjects.Azubi.Azubi;
import valueobjects.Klasse.Klasse;
import dao.Azubi.AzubiDAO;
import dao.Azubi.AzubiDAOImpl;

public class AzubiServiceImpl implements AzubiService {

	private AzubiDAO dao = new AzubiDAOImpl();
	private FIAD fiad;
	private List<Azubi> alleAzubis;

	public AzubiServiceImpl(FIAD fiad) {
		this.fiad = fiad;
	}

	@Override
	public List<Azubi> holeAlleAzubis() {
		this.alleAzubis = this.dao.holeAlleAzubis();

		for (Azubi azubi : this.alleAzubis) {
			// Azubi mit Klassen verbinden.
			for (Klasse klasse : this.fiad.getAlleKlassen()) {
				if (azubi.getFk_klasse() == klasse.getId()) {
					azubi.setKlasse(klasse);
				}
			}

			// Azubi mit Ausbildern verbinden.
			for (Ausbilder ausbilder : this.fiad.getAlleAusbilder()) {
				if (azubi.getFk_ausbilder() == ausbilder.getId()) {
					azubi.setAusbilder(ausbilder);
				}
			}
		}
		return this.alleAzubis;
	}

	@Override
	public void speichereAzubi(Azubi azubi) {
		this.dao.speichereAzubi(azubi);
	}

	@Override
	public void aendereAzubi(Azubi azubi) {
		this.dao.aendereAzubi(azubi);
	}

	@Override
	public void loescheAzubi(Azubi azubi) {
		this.dao.loescheAzubi(azubi.getId());
	}

}
